Show Code
# The usual imports
import altair as alt
import geopandas as gpd
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt# The usual imports
import altair as alt
import geopandas as gpd
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt# Show all columns in dataframes
pd.options.display.max_columns = 999
# Hide warnings due to issue in shapely package
# See: https://github.com/shapely/shapely/issues/1345
np.seterr(invalid="ignore"){'divide': 'warn', 'over': 'warn', 'under': 'ignore', 'invalid': 'warn'}
Great source of data: street networks and a wealth of amenity information
https://www.openstreetmap.org
Related: interactive web maps in Python
Relatively new package (just a few years old), but quickly becoming the go to package for working with street networks and OpenStreetMap data in Python.
Several key features:
Downloading political boundaries for cities, states, countries, etc
Downloading street networks
Analyzing networks: routing, visualization, statistics
# !pip install osmnximport osmnx as oxKey function: geocode_to_gdf() (docs)
We can get the boundary for anything identified as a “place” by OSM.
Important: Be careful to pass the right place name that OSM needs
philly = ox.geocode_to_gdf("Philadelphia, PA")
philly.head()| geometry | bbox_west | bbox_south | bbox_east | bbox_north | place_id | osm_type | osm_id | lat | lon | class | type | place_rank | importance | addresstype | name | display_name | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | POLYGON ((-75.28027 39.97496, -75.28023 39.974... | -75.280266 | 39.867005 | -74.955831 | 40.137959 | 331386626 | relation | 188022 | 39.952724 | -75.163526 | boundary | administrative | 16 | 0.766493 | city | Philadelphia | Philadelphia, Philadelphia County, Pennsylvani... |
philly.crs<Geographic 2D CRS: EPSG:4326>
Name: WGS 84
Axis Info [ellipsoidal]:
- Lat[north]: Geodetic latitude (degree)
- Lon[east]: Geodetic longitude (degree)
Area of Use:
- name: World.
- bounds: (-180.0, -90.0, 180.0, 90.0)
Datum: World Geodetic System 1984 ensemble
- Ellipsoid: WGS 84
- Prime Meridian: Greenwich
We can plot it just like any other GeoDataFrame
# Project it to Web Mercator first and plot
ax = philly.to_crs(epsg=3857).plot(facecolor="none", edgecolor="black")
ax.set_axis_off()
Key function: project_gdf() (docs)
Automatically projects to the Universal Transverse Mercator (UTM) CRS for the UTM zone that the centroid of the polygon lies in
A good, general projection that works for most latitudes except very northern locations.
# ax = ox.project_gdf(philly).plot(fc="lightblue", ec="gray")
# ax.set_axis_off()
import geopandas as gpd
# Reproject philly to its best UTM zone
philly_proj = philly.to_crs(philly.estimate_utm_crs())
# Plot
ax = philly_proj.plot(fc="lightblue", ec="gray")
ax.set_axis_off()
Some more examples:
# Some examples
place1 = ox.geocode_to_gdf("Manhattan, New York City, New York, USA")
place2 = ox.geocode_to_gdf("Miami-Dade County, Florida")
place3 = ox.geocode_to_gdf("Florida, USA")
place4 = ox.geocode_to_gdf("Spain")# # Manhattan
# ax = ox.project_gdf(place1).plot(fc="lightblue", ec="gray")
# ax.set_axis_off()
# Reproject philly to its best UTM zone
place1_repoj = place1.to_crs(place1.estimate_utm_crs())
ax = place1_repoj.plot(fc="lightblue", ec="gray")
ax.set_axis_off()
# # Miami-Dade County
# ax = ox.project_gdf(place2).plot(fc="lightblue", ec="gray")
# ax.set_axis_off()
# Reproject philly to its best UTM zone
place2_repoj = place2.to_crs(place2.estimate_utm_crs())
ax = place2_repoj.plot(fc="lightblue", ec="gray")
ax.set_axis_off()
# # Florida
# ax = ox.project_gdf(place3).plot(fc="lightblue", ec="gray")
# ax.set_axis_off()
# Reproject philly to its best UTM zone
place3_repoj = place3.to_crs(place3.estimate_utm_crs())
ax = place3_repoj.plot(fc="lightblue", ec="gray")
ax.set_axis_off()
# # Spain
# ax = ox.project_gdf(place4).plot(fc="lightblue", ec="gray")
# ax.set_axis_off()
# Reproject philly to its best UTM zone
place4_repoj = place4.to_crs(place4.estimate_utm_crs())
ax = place4_repoj.plot(fc="lightblue", ec="gray")
ax.set_axis_off()
Key functions: features_from_*
features_from_place() (docs)
features_from_address() (docs)
features_from_bbox() (docs)
features_from_point() (docs)
features_from_polygon() (docs)
Important reference: https://wiki.openstreetmap.org/wiki/Map_Features
In the language of OSM, the “key” is the main feature category (e.g., amenity) and the “value” is the sub-category type (e.g., “bar”)
osmnx mirrors the key/value syntax of OSM. Use a dict to specify the features you want:
# Get all amenities in Philadelphia
amenities = ox.features_from_place("Philadelphia, PA", tags={"amenity": True})len(amenities)15722
amenities.head()| geometry | amenity | brand | brand:wikidata | name | operator | operator:wikidata | operator:wikipedia | short_name | addr:city | addr:housenumber | addr:postcode | addr:state | addr:street | air_conditioning | branch | cuisine | official_name | opening_hours | phone | ref | takeaway | website | created_by | source | alt_name | atm | contact:facebook | diet:vegetarian | payment:cash | payment:credit_cards | payment:debit_cards | wheelchair | brand:website | healthcare | internet_access | url | contact:phone | description | wikidata | brewery | contact:instagram | diet:vegan | education | ele | gnis:feature_id | religion | check_date | denomination | building | old_name | comment | operator:type | school | wikipedia | service_times | historic:amenity | name:en | social_facility | operator:short | operator:website | emergency | healthcare:speciality | bicycle_parking | capacity | covered | library | ref:isil | addr:country | callsign | studio | craft | microbrewery | outdoor_seating | drive_through | check_date:opening_hours | contact:website | reservation | website:menu | addr:unit | internet_access:fee | shop | training | toilets:wheelchair | contact:linkedin | contact:tiktok | contact:twitter | addr:housename | delivery | indoor_seating | bottle | fountain | collection_times | parking | self_service | dispensing | opening_hours:drive_through | opening_hours:signed | screen | payment:coins | smoking | architect | artist_name | wikimedia_commons | female | fee | check_date:opening_hours:drive_through | contact:myspace | fax | bar | designation | tourism | source:pkey | fixme | access | changing_table | toilets | name:zh | addr:full | mobile | charge | panoramax | fuel:biodiesel | fuel:biogas | fuel:cng | fuel:diesel | fuel:e10 | fuel:e85 | fuel:electricity | sport | collection_times:signed | ref:signed | drive_in | compressed_air | check_date:collection_times | food | cash_in | indoor | toilets:access | not:brand:wikidata | diet:halal | opening_hours:atm | payment:apple_pay | payment:contactless | toilets:handwashing | toilets:handwashing:soap | check_date:diet:vegan | diet:organic | diet:meat | image:menu | image:menu:0 | image:menu:1 | image:menu:2 | panoramax:0 | leisure | drink:club-mate | car_wash | note | bicycle_rental | kiosk | min_age | network | network:wikidata | owner | owner:wikidata | ownership | payment:app | rental | sponsor | sponsor:wikidata | toilets:disposal | opening_hours:bar | opening_hours:kitchen | diet:pescetarian | lgbtq | park_ride | supervised | power_supply | addr:place | flickr | was:shop | contact:email | youtube | source:cuisine | disused:shop | toilets:position | male | maxheight | wheelchair:description | wheelchair:description:en | internet_access:ssid | layer | service:bicycle:chain_tool | service:bicycle:pump | currency:USD | drink:coca-cola | drink:coke | drink:cola | drink:cola_zero | drink:soda | drink:water | vending | network:wikipedia | amenity_1 | recycling:computers | recycling:tv_monitor | recycling_type | ferry | public_transport | entrance | toilets:unisex | kitchen_hours | animal | fixme:atp | website:orders | website:reservation | check_date:wheelchair | backrest | street_vendor | service:bicycle:repair | payment:cards | name:es | diet:kosher | social_facility:for | theatre:genre | beds | level | payment:visa | was:name | happy_hours | opening_hours:brunch | opening_hours:dinner | opening_hours:lunch | direction | office | date | display | faces | armrest | seats | material | name:ca | addr:city:ar | name:ar | service:bicycle:tools | colour | brand:type | parcel_locker:type | parcel_mail_in | parcel_pickup | waste | historic | artwork_type | start_date | support | type | payment:american_express | payment:discover_card | payment:mastercard | dog | recycling:beverage_cartons | recycling:cans | recycling:glass_bottles | recycling:paper | recycling:plastic | recycling:plastic_bottles | recycling:plastic_packaging | contact:yelp | portable | seasonal | unisex | internet_access:description | man_made | particle_accelerator | substance | payment:cheque | heritage | clock | inscription | inscription:1 | panoramax:1 | bus | tram | opening_hours:bottle_shop | barrier | public_bookcase:type | check_date:capacity | payment:cash_app | payment:venmo | seating | currency:XBT | theatre:type | smoothness | surface | opening_hours:Condesa | opening_hours:El_Cafe | opening_hours:El_Techo | shelter_type | currency:BCH | manufacturer | payment:onchain | cash_out | brand:en | brand:zh | location | lit | drinking_water | height | fridge | opening_hours:covid19 | diet:healthy | abandoned:amenity | artwork_subject | memorial | subject:wikidata | payment:lightning | payment:lightning_contactless | delivery:partner | internet_access:password | post_box:type | check_date:diet:vegetarian | description:en | check_date:currency:XBT | check_date:smoking | phone:mnemonic | addr:door | was:amenity | urgent_care | community_centre:for | community_centre | animal_shelter | brand:short | disused:amenity | cash | name:etymology | name:etymology:wikidata | image | operator:short_name | automated | social_centre:for | cash_withdrawal | nobrand | recycling:clothes | animal_training | parking_space | bike_ride | bin | polling_station | shop:music:vinyl | books | manufacturer:wikidata | model | model:ref | addr:floor | diet | survey:date | former:shop | cafe | contact:bluesky | website:booking | fuel | nursery | preschool | diet:gluten_free | int_name | old_ref | mimics | fast_food | gender_segregated | heating | live_music | was:addr:housenumber | healthcare:for | tactile_paving | animal_boarding | recycling:waste | authentication:app | bicycle | frequency | hgv | maxstay | motorcar | network:website | payment:app:tesla | ref:supercharge_info | scooter | socket:nacs | socket:nacs:output | diet:mediterranean | landuse | restaurant | seeds | building:levels | capacity:disabled | building:floor | ref:nrhp | building:material | roof:levels | roof:shape | vehicle | natural | water | building:use | lanes | ship:type | wifi | orientation | name:he | source:name | basilica | diocese | website:en | roof:material | access:conditional | rite | heritage:operator | building:architecture | heritage:website | contact:mastodon | architect:wikidata | building:levels:underground | nrhp:criteria | nrhp:inscription_date | building:colour | ref:dove | check_date:compressed_air | nonsquare | name:ja | name:zn | roof:orientation | demolished:building | historic:name | grades | farm_boxes | disused:name | post_office | building:part | monastery:type | theme | bench | loc_name | drink | subdenomination | police | was:cuisine | was:delivery | was:drive_through | was:outdoor_seating | was:takeaway | school:type | old_name1 | old_name2 | elevation | fuel:octane_95 | fuel:gasoline | fuel:octane_87 | healthcare:counselling | parking:orientation | area | protection_title | source_ref | country | house | diet:lacto_vegetarian | name:vi | isced:level | pedagogy | school:gender | statue | crossing:markings | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| element | id | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| node | 109811385 | POINT (-75.19487 40.05846) | bench | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 110237774 | POINT (-75.15662 39.9504) | parking_entrance | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 274216093 | POINT (-75.19125 39.95764) | atm | Citibank | Q857063 | Citibank | Citibank | Q857063 | en:Citibank | Citi | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 274217596 | POINT (-75.19229 39.95301) | cafe | Starbucks | Q37158 | Starbucks | NaN | NaN | NaN | NaN | Philadelphia | 3401 | 19104 | PA | Walnut Street | yes | Walnut & 34th | coffee_shop | Starbucks Coffee | Mo-Fr 05:30-20:00; Sa,Su 06:00-20:00 | +1-215-387-1914 | 14716 | yes | https://www.starbucks.com/store-locator/store/... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 313440966 | POINT (-75.16694 39.96394) | car_sharing | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Potlatch 0.10f | local_knowledge | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
# Get all bars in philadelphia
bars = ox.features_from_place("Philadelphia, PA", tags={"amenity": "bar"})len(bars)165
bars.head()| geometry | addr:housenumber | addr:street | amenity | contact:phone | contact:website | description | name | opening_hours | outdoor_seating | check_date | contact:facebook | addr:postcode | phone | website | addr:city | air_conditioning | smoking | toilets:wheelchair | wheelchair | check_date:opening_hours | opening_hours:signed | indoor_seating | contact:instagram | leisure | sport | lgbtq | access | brand | brand:wikidata | wheelchair:description | opening_hours:kitchen | addr:state | branch | cuisine | fixme | name:en | name:es | addr:unit | craft | heritage | wikidata | wikipedia | brewery | min_age | opening_hours:bottle_shop | operator | alt_name | height | source | internet_access | website:menu | landuse | microbrewery | restaurant | atm | building | building:levels | food | nonsquare | shop | contact:tiktok | contact:twitter | level | designation | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| element | id | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| node | 1033935437 | POINT (-75.17552 39.95242) | 2101 | Chestnut Street | bar | +1 215-568-3355 | https://mixbarandgrillphilly.com/location/mix-... | The bar is open until whenever the rush ends. | Mix Bar & Grill | Mo-We,Su 11:00-22:00; Th-Sa 11:00-23:00 | yes | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 1167079387 | POINT (-75.14925 39.9417) | 401 | South Street | bar | +1 215-925-6455 | https://www.milkboy.tv/southstreet | NaN | MilkBoy South Street | Mo-Tu,Su 11:00-24:00; We-Sa 11:00-25:00 | NaN | 2023-04-12 | https://www.facebook.com/milkboysouthstreet | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 1204761128 | POINT (-75.16363 39.92685) | NaN | NaN | bar | NaN | NaN | NaN | Vikings High School Club | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 1424271155 | POINT (-75.14909 39.94152) | 344 | South Street | bar | NaN | NaN | NaN | Copabanana | Mo-Su 11:30-02:00 | NaN | NaN | NaN | 19147 | +1 215-923-6180 | https://copabanana.com/ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 1475230378 | POINT (-75.14002 39.96627) | 1001 | North 2nd Street | bar | NaN | NaN | NaN | Gunner's Run | Mo-Su 11:00-02:00 | NaN | NaN | NaN | 19123 | +1 215-923-4600 | http://gunnersrun.com/ | Philadelphia | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
# Get bar, pub, and restaurant features in Philadelphia
food_and_drink = ox.features_from_place(
"Philadelphia, PA", tags={"amenity": ["pub", "bar", "restaurant"]}
)len(food_and_drink)1155
food_and_drink.head()| geometry | addr:city | addr:housenumber | addr:postcode | addr:state | addr:street | alt_name | amenity | atm | contact:facebook | cuisine | diet:vegetarian | name | opening_hours | payment:cash | payment:credit_cards | payment:debit_cards | source | wheelchair | brewery | contact:instagram | diet:vegan | phone | website | check_date | craft | microbrewery | outdoor_seating | brand | brand:wikidata | check_date:opening_hours | contact:website | reservation | website:menu | contact:phone | contact:twitter | internet_access | self_service | indoor_seating | opening_hours:signed | description | wikimedia_commons | air_conditioning | smoking | bar | designation | takeaway | addr:housename | toilets:wheelchair | short_name | name:zh | sport | delivery | drive_in | food | not:brand:wikidata | toilets | diet:halal | addr:country | drive_through | branch | official_name | diet:organic | diet:meat | image:menu | image:menu:0 | image:menu:1 | image:menu:2 | panoramax | panoramax:0 | leisure | opening_hours:bar | opening_hours:kitchen | operator | diet:pescetarian | lgbtq | source:cuisine | access | wheelchair:description | ref | amenity_1 | capacity | fax | kitchen_hours | wikidata | fixme | website:orders | website:reservation | name:en | street_vendor | addr:unit | name:es | was:name | level | note | happy_hours | opening_hours:brunch | opening_hours:dinner | opening_hours:lunch | payment:apple_pay | payment:cards | payment:contactless | name:ca | internet_access:fee | payment:american_express | payment:discover_card | payment:mastercard | payment:visa | start_date | contact:yelp | internet_access:description | internet_access:ssid | heritage | wikipedia | min_age | opening_hours:bottle_shop | opening_hours:Condesa | opening_hours:El_Cafe | opening_hours:El_Techo | diet:healthy | delivery:partner | toilets:access | height | check_date:smoking | phone:mnemonic | diet:gluten_free | was:addr:housenumber | diet:mediterranean | toilets:unisex | landuse | restaurant | panoramax:1 | building | historic | ship:type | source:name | website:en | building:levels | contact:mastodon | image | roof:levels | name:ja | name:zn | nonsquare | shop | theme | building:colour | building:material | roof:shape | contact:tiktok | house | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| element | id | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| node | 333786044 | POINT (-75.15893 39.94086) | Philadelphia | 735 | 19147 | PA | South 10th Street | Morning Glory Diner | restaurant | yes | https://www.facebook.com/MorningGloryDiner/ | diner | yes | Sam's Morning Glory | Mo-Fr 08:00-14:00; Sa,Su 08:00-15:00 | yes | no | no | knowledge;survey | limited | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 343293806 | POINT (-75.15946 39.96073) | Philadelphia | 501 | 19123 | PA | North 13th Street | NaN | pub | NaN | NaN | american;burger;fish_and_chips;sandwich | yes | Prohibition Taproom | Fr-Sa 12:00-01:00; Su 12:00-00:00; Mo-Th 16:00... | NaN | NaN | NaN | survey | NaN | yes | prohibition_taproom | yes | info@theprohibitiontaproom.com | 215-238-1818 | http://theprohibitiontaproom.com/ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 566683522 | POINT (-75.15755 39.96205) | Philadelphia | 1139 | 19123 | NaN | Spring Garden Street | NaN | restaurant | NaN | NaN | pizza | NaN | Spring Garden Pizza & Restaurant | Mo-Fr 08:00-20:00; Sa 08:00-17:00; Su off | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | +1 215-765-7665 | https://www.springgardenpizza.com | 2023-10-11 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 596230881 | POINT (-75.18682 40.05492) | NaN | NaN | NaN | NaN | NaN | NaN | restaurant | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 596245658 | POINT (-75.19035 40.0592) | Philadelphia | 7136 | 19119 | PA | Germantown Avenue | NaN | restaurant | NaN | NaN | NaN | NaN | Earth Bread & Brewery | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | brewery | yes | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
# Get bus stop features
bus_stops = ox.features_from_place("Philadelphia, PA", tags={"highway": "bus_stop"})len(bus_stops)334
bus_stops.head()| geometry | bench | bus | covered | highway | name | network | network:wikidata | operator | public_transport | ref | shelter | network:wikipedia | tactile_paving | wheelchair | route_ref | local_ref | bin | lit | designation | source | check_date:shelter | departures_board | internet_access | addr:street | route_ref_1 | operator:wikidata | description | note | brand | brand:wikidata | railway | tram | trolleybus | network:short | not:network:wikidata | advertising | addr:city | addr:housenumber | addr:postcode | addr:state | ref:signed | fixme | sign | panoramax | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| element | id | |||||||||||||||||||||||||||||||||||||||||||||
| node | 361011456 | POINT (-75.16166 39.95223) | yes | yes | yes | bus_stop | 13th St & Market St | SEPTA | Q2037863 | SEPTA | platform | 10264 | yes | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 750281693 | POINT (-75.07732 40.01797) | NaN | yes | NaN | bus_stop | NaN | NaN | NaN | NaN | platform | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 768271130 | POINT (-75.20726 40.01487) | NaN | yes | NaN | bus_stop | Wissahickon Transportation Center | SEPTA | Q2037863 | SEPTA | platform | NaN | yes | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 1015342921 | POINT (-75.18187 39.9664) | NaN | yes | NaN | bus_stop | NaN | NaN | NaN | NaN | platform | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 1015342926 | POINT (-75.18024 39.9667) | NaN | yes | NaN | bus_stop | NaN | NaN | NaN | NaN | platform | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
# Get commercial and retail landuse features
landuse = ox.features_from_place(
"Philadelphia, PA", tags={"landuse": ["commercial", "retail"]}
)len(landuse)349
Let’s plot the land use features:
from matplotlib import pyplot as plt
fig, ax = plt.subplots(figsize=(10, 6))
ax = landuse.plot(ax=ax)
ax.set_axis_off()
Key functions: graph_from_*
graph_from_place() (docs)
graph_from_address() (docs)
graph_from_bbox() (docs)
graph_from_point() (docs)
graph_from_polygon() (docs)
Get streets within 500 meters of the center of Center City
G = ox.graph_from_address("Center City, Philadelphia, PA", dist=500)Project and plot it:
G_projected = ox.project_graph(G)
ox.plot_graph(G_projected)
Remove the nodes:
ox.plot_graph(G_projected, node_size=0);
Let’s zoom out to 2,000 meters. This will take a little longer.
G = ox.graph_from_address("Center City, Philadelphia, PA", dist=2000)
G_projected = ox.project_graph(G)ox.plot_graph(G_projected, node_size=0);
drive - get drivable public streets (but not service roads)drive_service - get drivable streets, including service roadswalk - get all streets and paths that pedestrians can use (this network type ignores one-way directionality)bike - get all streets and paths that cyclists can useall - download all non-private OSM streets and pathsall_private - download all OSM streets and paths, including private-access ones (default)# the "drive" network
G = ox.graph_from_address("Center City, Philadelphia, PA", network_type="drive", dist=2000)
ox.plot_graph(G)
# the "walk" network
G = ox.graph_from_address("Center City, Philadelphia, PA", network_type="walk", dist=2000)
ox.plot_graph(ox.project_graph(G))
Use graph_from_place() to get the streets within a specific OSM place.
A couple of things to watch out for: 1. The place query has to be resolved by OSM. 2. If the place is a big city, you might be downloading a lot of data!
Let’s check out the street network for Berkeley, CA:
berkeley = ox.graph_from_place("Berkeley, California, USA")ox.plot_graph(ox.project_graph(berkeley), node_size=0)
Example: Let’s download all streets within Center City. We will use the “Central” planning district as a proxy for this area. The city’s planning districts are available on Open Data Philly.
planning_districts = gpd.read_file(
"https://opendata.arcgis.com/datasets/0960ea0f38f44146bb562f2b212075aa_0.geojson"
)len(planning_districts)18
planning_districts.head()| objectid | dist_name | abbrev | Shape__Area | Shape__Length | geometry | |
|---|---|---|---|---|---|---|
| 0 | 1 | River Wards | RW | 3.338947e+07 | 26635.524113 | POLYGON ((-75.09798 40.00496, -75.09687 40.005... |
| 1 | 2 | North Delaware | NDEL | 4.285306e+07 | 35525.335312 | POLYGON ((-74.98159 40.05363, -74.98139 40.053... |
| 2 | 3 | Lower Far Northeast | LFNE | 4.875252e+07 | 36958.071333 | POLYGON ((-74.96443 40.11728, -74.96434 40.117... |
| 3 | 4 | Central | CTR | 2.822133e+07 | 28401.823065 | POLYGON ((-75.14791 39.96733, -75.14715 39.967... |
| 4 | 5 | University Southwest | USW | 2.051763e+07 | 25957.938149 | POLYGON ((-75.18742 39.96338, -75.18644 39.963... |
Trim to the central district:
central_district = planning_districts.query("dist_name == 'Central'")And plot it:
## old version previous OSMnx 2.0
# ax = ox.project_gdf(central_district).plot(fc="lightblue", ec="gray")
# ax.set_axis_off()
# Reproject philly to its best UTM zone
central_district_repoj = central_district.to_crs(central_district.estimate_utm_crs())
ax = central_district_repoj.plot(fc="lightblue", ec="gray")
ax.set_axis_off()
central_district, central_district_repoj.crs( objectid dist_name abbrev Shape__Area Shape__Length \
3 4 Central CTR 2.822133e+07 28401.823065
geometry
3 POLYGON ((-75.14791 39.96733, -75.14715 39.967... ,
<Projected CRS: EPSG:32618>
Name: WGS 84 / UTM zone 18N
Axis Info [cartesian]:
- E[east]: Easting (metre)
- N[north]: Northing (metre)
Area of Use:
- name: Between 78°W and 72°W, northern hemisphere between equator and 84°N, onshore and offshore. Bahamas. Canada - Nunavut; Ontario; Quebec. Colombia. Cuba. Ecuador. Greenland. Haiti. Jamaica. Panama. Turks and Caicos Islands. United States (USA). Venezuela.
- bounds: (-78.0, 0.0, -72.0, 84.0)
Coordinate Operation:
- name: UTM zone 18N
- method: Transverse Mercator
Datum: World Geodetic System 1984 ensemble
- Ellipsoid: WGS 84
- Prime Meridian: Greenwich)
Squeeze it so we can get the geometry polygon:
center_city_outline = central_district.squeeze().geometry
center_city_outline, type(center_city_outline)(<POLYGON ((-75.148 39.967, -75.147 39.967, -75.147 39.969, -75.147 39.97, -7...>,
shapely.geometry.polygon.Polygon)
Now, let’s use ox.graph_from_polygon() to extract streets within this polygon.
# Get the graph
G_cc = ox.graph_from_polygon(center_city_outline, network_type="drive")# Viola!
ox.plot_graph(ox.project_graph(G_cc), node_size=0);
Key function: ox.graph_to_gdfs() (docs)
You can get a GeoDataFrame for both the nodes (points) and edges (lines)
type(G_cc)networkx.classes.multidigraph.MultiDiGraph
# only get the edges
cc_edges = ox.graph_to_gdfs(G_cc, edges=True, nodes=False)# we have lots of data associated with each edge!
cc_edges.head()| osmid | highway | lanes | name | oneway | reversed | length | geometry | maxspeed | ref | bridge | tunnel | width | service | access | junction | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| u | v | key | ||||||||||||||||
| 109727439 | 109911666 | 0 | 132508434 | residential | 1 | Bainbridge Street | True | False | 44.347013 | LINESTRING (-75.17104 39.94345, -75.1706 39.94... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 109727448 | 109727439 | 0 | 12109011 | residential | NaN | South Colorado Street | True | False | 109.496448 | LINESTRING (-75.17125 39.94248, -75.1712 39.94... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 110034229 | 0 | 12159387 | residential | NaN | Fitzwater Street | True | False | 91.354184 | LINESTRING (-75.17125 39.94248, -75.17129 39.9... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 109727507 | 110024052 | 0 | 193364514 | residential | NaN | Carpenter Street | True | False | 53.208442 | LINESTRING (-75.17196 39.93974, -75.17134 39.9... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 109728761 | 110274344 | 0 | 672312336 | residential | NaN | Brown Street | True | False | 58.270358 | LINESTRING (-75.17317 39.96951, -75.1725 39.96... | 25 mph | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
# plot it like any old GeoDataFrame
ax = cc_edges.to_crs(epsg=3857).plot(color="gray")
# add the neighborhood boundaries
boundary = gpd.GeoSeries([center_city_outline], crs="EPSG:4326")
boundary.to_crs(epsg=3857).plot(
ax=ax, facecolor="none", edgecolor="red", linewidth=3, zorder=2
)
ax.set_axis_off()
Don’t forget: We can use the .explore() function to get an interactive web map via Folium:
cc_edges.explore(tiles='cartodb positron')And much more: see the OSMnx repository of Jupyter notebook examples
A great blog post on street orientations across different US and global cities.
One of my favorite examples of data viz, using matplotlib for radial histograms of street orientations…

The code for these histograms is available in the osmnx examples repository.
We can use the ox.basic_stats() to get some basic network statistics
ox.basic_stats(G_cc){'n': 2097,
'm': 4027,
'k_avg': 3.8407248450166906,
'edge_length_total': 357852.7307807873,
'edge_length_avg': 88.86335504861864,
'streets_per_node_avg': 3.407248450166905,
'streets_per_node_counts': {0: 0,
1: 61,
2: 12,
3: 1058,
4: 949,
5: 13,
6: 3,
7: 1},
'streets_per_node_proportions': {0: 0.0,
1: 0.029089175011921792,
2: 0.005722460658082976,
3: 0.5045302813543157,
4: 0.452551263710062,
5: 0.00619933237958989,
6: 0.001430615164520744,
7: 0.0004768717215069146},
'intersection_count': 2036,
'street_length_total': 311421.4931922978,
'street_segment_count': 3484,
'street_length_avg': 89.38619207586045,
'circuity_avg': 1.0159857056912147,
'self_loop_proportion': 0.000574052812858783}
Let’s calculate the shortest route between the Art Museum and the Liberty Bell.
We’ll need to download all amenities in Philadelphia of type “tourism”.
ox.features_from_place() can download OSM features with a specific tagphilly_tourism = ox.features_from_place("Philadelphia, PA", tags={"tourism": True})len(philly_tourism)928
philly_tourism.head()| geometry | ele | gnis:feature_id | name | tourism | addr:city | addr:housenumber | addr:postcode | addr:state | addr:street | air_conditioning | brand | brand:wikidata | internet_access | operator | phone | website | artwork_type | historic | source | wikidata | information | artist_name | material | check_date | contact:facebook | fee | colour | start_date | wheelchair | wikipedia | addr:country | landmark | name:de | opening_hours | designation | amenity | description | museum | operator:type | alt_name | artwork_subject | artist:wikidata | height | subject:wikidata | name:fr | statue | memorial | subject:wikipedia | year_of_construction | name:ru | contact:email | branch | ref | panoramax | board_type | contact:instagram | toilets:wheelchair | loc_name | inscription | level | natural | attraction | note | wikimedia_commons | location | display | support | end_date | comment | layer | historic:amenity | postal_code | official_name | brand:short | short_name | guest_house | inscription:url | gender | bicycle | hiking | covered | drinking_water | openfire | internet_access:fee | rooms | addr:unit | old_name | image | mimics | source:url | direction | board:title | departures_board | direction_southeast | horse | mtb | map_size | map_type | access | direction_east | direction_north | direction_west | name:signed | direction_southwest | guidepost | direction_northeast | direction_northwest | ref:signed | direction_south | fixme | noname | check_date:opening_hours | opening_hours:signed | bar | swimming_pool | highway | lanes | name:etymology | oneway | service | surface | tiger:cfcc | tiger:name_base | tiger:name_type | tiger:zip_left | tiger:zip_right | building | building:material | ref:nrhp | building:levels | name:hi | roof:shape | building:wikidata | building:wikipedia | heritage | heritage:operator | heritage:website | nrhp:criteria | nrhp:inscription_date | nrhp:nhl | protection_title | source_ref | smoking | building:colour | fax | contact:fax | contact:phone | ship:type | addr:housename | disused:amenity | roof:material | abandoned:amenity | internet_access:ssid | old_name:2015 | parking | old_name:1994-2015 | fee:conditional | shop | roof:levels | mtb:scale:imba | name:zh | artist:website | bridge | foot | lit | trail_visibility | width | bridge:structure | man_made | barrier | leisure | disused:website | contact:website | boundary | operator:short | operator:wikidata | ownership | protected | building:part | name:en | area | subject | tower:construction | tower:type | area:highway | step_count | type | roof:colour | place | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| element | id | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| node | 357371322 | POINT (-75.1958 39.9697) | 17 | 2347097 | Bird Lake Picnic Area | picnic_site | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 360500844 | POINT (-75.19582 39.95352) | NaN | NaN | Hilton Inn at Penn | hotel | Philadelphia | 3600 | 19104 | PA | Sansom Street | yes | Hilton | Q598884 | PHLID_Hotel@hilton.com | wlan | Hilton | +1-215-222-0200 | https://www.hilton.com/en/hotels/phlidhh-the-i... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 360515304 | POINT (-75.1486 39.94771) | NaN | NaN | Robert Morris | artwork | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | statue | memorial | survey | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 360542779 | POINT (-75.18932 39.9554) | NaN | NaN | Mario the Magnificent | artwork | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | statue | NaN | NaN | Q98563440 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 360777728 | POINT (-75.19021 39.9523) | NaN | NaN | Pennsylvania Historical Marker: ENIAC, first a... | information | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | board | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
# How to find the name of the POI: search for keywords
philly_tourism.loc[philly_tourism['name'].str.contains("Art", na=False)]| geometry | ele | gnis:feature_id | name | tourism | addr:city | addr:housenumber | addr:postcode | addr:state | addr:street | air_conditioning | brand | brand:wikidata | internet_access | operator | phone | website | artwork_type | historic | source | wikidata | information | artist_name | material | check_date | contact:facebook | fee | colour | start_date | wheelchair | wikipedia | addr:country | landmark | name:de | opening_hours | designation | amenity | description | museum | operator:type | alt_name | artwork_subject | artist:wikidata | height | subject:wikidata | name:fr | statue | memorial | subject:wikipedia | year_of_construction | name:ru | contact:email | branch | ref | panoramax | board_type | contact:instagram | toilets:wheelchair | loc_name | inscription | level | natural | attraction | note | wikimedia_commons | location | display | support | end_date | comment | layer | historic:amenity | postal_code | official_name | brand:short | short_name | guest_house | inscription:url | gender | bicycle | hiking | covered | drinking_water | openfire | internet_access:fee | rooms | addr:unit | old_name | image | mimics | source:url | direction | board:title | departures_board | direction_southeast | horse | mtb | map_size | map_type | access | direction_east | direction_north | direction_west | name:signed | direction_southwest | guidepost | direction_northeast | direction_northwest | ref:signed | direction_south | fixme | noname | check_date:opening_hours | opening_hours:signed | bar | swimming_pool | highway | lanes | name:etymology | oneway | service | surface | tiger:cfcc | tiger:name_base | tiger:name_type | tiger:zip_left | tiger:zip_right | building | building:material | ref:nrhp | building:levels | name:hi | roof:shape | building:wikidata | building:wikipedia | heritage | heritage:operator | heritage:website | nrhp:criteria | nrhp:inscription_date | nrhp:nhl | protection_title | source_ref | smoking | building:colour | fax | contact:fax | contact:phone | ship:type | addr:housename | disused:amenity | roof:material | abandoned:amenity | internet_access:ssid | old_name:2015 | parking | old_name:1994-2015 | fee:conditional | shop | roof:levels | mtb:scale:imba | name:zh | artist:website | bridge | foot | lit | trail_visibility | width | bridge:structure | man_made | barrier | leisure | disused:website | contact:website | boundary | operator:short | operator:wikidata | ownership | protected | building:part | name:en | area | subject | tower:construction | tower:type | area:highway | step_count | type | roof:colour | place | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| element | id | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| node | 367974278 | POINT (-75.1524 40.03748) | 61 | 2349240 | La Salle University Art Museum | museum | Philadelphia | 1900 | NaN | PA | West Olney Avenue | NaN | NaN | NaN | NaN | NaN | NaN | NaN | https://artcollection.lasalle.edu/ | NaN | NaN | USGS Geonames | Q16893816 | NaN | NaN | NaN | 2024-08-25 | https://www.facebook.com/LaSalleUniversityArtM... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 4064343335 | POINT (-75.22113 40.02427) | NaN | NaN | Soft Illusions Fine Art Gallery | gallery | Philadelphia | 4226 | 19127 | PA | Main Street | NaN | NaN | NaN | NaN | NaN | NaN | +1-215-840-0832 | http://www.softillusions.net/ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2025-06-01 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 5368454121 | POINT (-75.19477 39.95406) | NaN | NaN | Institute of Contemporary Art | museum | Philadelphia | 118 | 19104 | PA | South 36th Street | NaN | NaN | NaN | NaN | NaN | NaN | +1 215-898-5911 | https://icaphila.org | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ICAPhiladelphia | no | NaN | NaN | yes | NaN | NaN | NaN | NaN | We-Su 12:00-18:00 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ICAPhiladelphia | yes | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 5718906477 | POINT (-75.13058 39.99573) | NaN | NaN | Art Making Machine Studios | gallery | Philadelphia | 3000 | 19133 | PA | Hope Street | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 6639391809 | POINT (-75.16088 39.96383) | NaN | NaN | Philadelphia Museum of Jewish Art | museum | Philadelphia | 615 | 19123 | PA | North Broad Street | NaN | NaN | NaN | NaN | NaN | NaN | +1 215-627-6747 | https://rodephshalom.org/community/philadelphi... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2023-10-11 | NaN | no | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 6680708848 | POINT (-75.16833 39.94733) | NaN | NaN | Romanian Folk Art Museum | museum | Philadelphia | 1606 | 19103 | PA | Spruce Street | NaN | NaN | NaN | NaN | NaN | NaN | NaN | http://www.romanianculture.us/ | NaN | NaN | NaN | Q113484178 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 12188327106 | POINT (-75.14215 39.95191) | NaN | NaN | Arch Enemy Arts | gallery | Philadelphia | 109 | 19106 | PA | Arch Street | NaN | NaN | NaN | NaN | NaN | NaN | +1 215-717-7774 | https://www.archenemyarts.com/ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 12193292355 | POINT (-75.14336 39.9522) | NaN | NaN | Twelve Gates Arts | gallery | Philadelphia | 106 | 19106 | PA | North 2nd Street | NaN | NaN | NaN | NaN | NaN | NaN | +1 215 253-8578 | https://www.twelvegatesarts.org/ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 12222614599 | POINT (-75.14334 39.95113) | NaN | NaN | Larry Becker Contemporary Art | gallery | Philadelphia | 43 | 19106 | PA | North 2nd Street | NaN | NaN | NaN | NaN | NaN | NaN | +1-215-925-5389 | https://www.artnet.com/galleries/larry-becker-... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | no | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2025-02-22 | no | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 12235452452 | POINT (-75.14486 39.95339) | NaN | NaN | Museum for Art in Wood | museum | Philadelphia | 141 | 19106 | PA | North 3rd Street | NaN | NaN | NaN | NaN | NaN | NaN | +1-215-923-8000 | https://museumforartinwood.org/ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | We-Su 12:00-17:00; Mo-Tu off | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| way | 28533972 | POLYGON ((-75.18117 39.96468, -75.18141 39.964... | 32 | NaN | Philadelphia Art Museum | museum | Philadelphia | 2600 | 19130 | PA | Benjamin Franklin Parkway | NaN | NaN | NaN | NaN | NaN | NaN | +1-215-763-8100 | https://www.philamuseum.org/ | NaN | NaN | NaN | Q510324 | NaN | NaN | NaN | 2025-10-08 | NaN | yes | NaN | NaN | yes | en:Philadelphia Museum of Art | NaN | NaN | NaN | Su,Mo,Th,Sa 10:00-17:00; Fr 10:00-20:45 | NaN | NaN | NaN | art | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Philadelphia Museum of Art | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | yes | NaN | NaN | 4 | फिलाडेल्फिया कला संग्रहालय | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 333931830 | POLYGON ((-75.1641 39.95543, -75.16416 39.9551... | 13 | 1196718 | Pennsylvania Academy of the Fine Arts | museum | Philadelphia | 118 | 19102 | PA | North Broad Street | NaN | NaN | NaN | NaN | NaN | NaN | +1-215-972-7600 | https://www.pafa.org/ | NaN | building | NaN | Q1952033 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | en:Pennsylvania Academy of the Fine Arts | US | NaN | NaN | Tu-Fr 10:00-17:00; Sa-Su 11:00-17:00 | NaN | NaN | NaN | art | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | yes | NaN | 71000731 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 988345364 | POLYGON ((-75.21926 40.0832, -75.21931 40.0832... | 84 | NaN | Woodmere Art Museum | museum | Philadelphia | 9201 | 19118 | PA | Germantown Avenue | NaN | NaN | NaN | NaN | NaN | NaN | NaN | https://woodmereartmuseum.org/ | NaN | NaN | esri/Philadelphia_PA_Buildings_OSM | Q2424929 | NaN | NaN | NaN | NaN | NaN | yes | NaN | NaN | yes | NaN | NaN | NaN | NaN | We-Su 10:00-17:00; Sa 10:00-18:00 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 20.72 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2023-06-10 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | yes | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
art_museum = philly_tourism.query("name == 'Philadelphia Art Museum'").squeeze()
art_museum.geometryliberty_bell = philly_tourism.query("name == 'Liberty Bell'").squeeze()
liberty_bell.geometryNow, extract the lat and lng coordinates
For the Art Museum geometry, we can use the .geometry.centroid attribute to calculate the centroid of the building footprint.
liberty_bell_x = liberty_bell.geometry.x
liberty_bell_y = liberty_bell.geometry.yart_museum_x = art_museum.geometry.centroid.x
art_museum_y = art_museum.geometry.centroid.yFind the nearest nodes on our OSMnx graph, using the ox.nearest_nodes() function
ox.nearest_nodes?Signature: ox.nearest_nodes(G, X, Y, return_dist=False) Docstring: Find the nearest node to a point or to each of several points. If `X` and `Y` are single coordinate values, this will return the nearest node to that point. If `X` and `Y` are lists of coordinate values, this will return the nearest node to each point. If the graph is projected, this uses a k-d tree for euclidean nearest neighbor search, which requires that scipy is installed as an optional dependency. If it is unprojected, this uses a ball tree for haversine nearest neighbor search, which requires that scikit-learn is installed as an optional dependency. Parameters ---------- G : networkx.MultiDiGraph graph in which to find nearest nodes X : float or list points' x (longitude) coordinates, in same CRS/units as graph and containing no nulls Y : float or list points' y (latitude) coordinates, in same CRS/units as graph and containing no nulls return_dist : bool optionally also return distance between points and nearest nodes Returns ------- nn or (nn, dist) : int/list or tuple nearest node IDs or optionally a tuple where `dist` contains distances between the points and their nearest nodes File: ~/mambaforge/envs/musa-550-fall-2023/lib/python3.10/site-packages/osmnx/distance.py Type: function
art_museum_y39.9656755285648
# Get the origin node
orig_node = ox.nearest_nodes(G_cc, liberty_bell_x, liberty_bell_y)
# Get the destination node
dest_node = ox.nearest_nodes(G_cc, art_museum_x, art_museum_y)Now, we can use ox.shortest_path() function to find the shortest path between these graph nodes.
We need to specify weight=‘length’ to find the shortest path by minimizing distance traveled (otherwise it treats each edge as weight=1).
# get the shortest path --> just a list of node IDs
route1 = ox.shortest_path(G_cc, orig_node, dest_node, weight="length")
route1[3408446156,
110217312,
3425012161,
109814427,
5372039288,
109814445,
109814449,
5358069713,
5372059864,
2644235371,
5534891499,
110540235,
109750941,
110402209,
110402230,
534960802,
110391250,
637791907,
637791980,
110329803,
110329806,
775897224,
3414249481,
110329822,
110391452,
110353061,
11162290432,
110054089,
775897147,
110329848,
110329851,
110125895,
534969088,
109745905,
109740423,
110330569,
550175399]
Use ox.plot_graph_route() to plot a graph and highlight a specific route
ox.plot_graph_route(G_cc, route1, node_size=0)
How about an interactive version?
osmnx has a helper function ox.utils_graph.route_to_gdf() to convert a route to a GeoDataFrame of edges.
# ox.utils_graph.route_to_gdf(G_cc, route1, weight="length").explore(
# tiles="cartodb positron",
# color="red",
# )
## new OSMnx 2.0 version
import osmnx as ox
# New import location
from osmnx import routing
# Convert route to GeoDataFrame
gdf_route = routing.route_to_gdf(G_cc, route1, weight="length")
# Explore with folium/leafmap
gdf_route.explore(
tiles="cartodb positron",
color="red"
)The add_edge_speeds function add edge speeds (km per hour) to graph as new speed_kph edge attributes.
The function will add free-flow travel speeds for all edges based on the average maxspeed value of edges, per highway type. This process can definitely be imprecise, but in the case that you happen to have more precise speed data, you can supply your own data instead of relying on OSM data.
# impute speed on all edges missing data
G_cc = ox.add_edge_speeds(G_cc)
# calculate travel time (seconds) for all edges
G_cc = ox.add_edge_travel_times(G_cc)# Get the graph edges
edges = ox.graph_to_gdfs(G_cc, nodes=False)edges.head()| osmid | highway | lanes | name | oneway | reversed | length | geometry | speed_kph | travel_time | maxspeed | ref | bridge | tunnel | width | service | access | junction | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| u | v | key | ||||||||||||||||||
| 109727439 | 109911666 | 0 | 132508434 | residential | 1 | Bainbridge Street | True | False | 44.347013 | LINESTRING (-75.17104 39.94345, -75.1706 39.94... | 38.467115 | 4.150279 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 109727448 | 109727439 | 0 | 12109011 | residential | NaN | South Colorado Street | True | False | 109.496448 | LINESTRING (-75.17125 39.94248, -75.1712 39.94... | 38.467115 | 10.247382 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 110034229 | 0 | 12159387 | residential | NaN | Fitzwater Street | True | False | 91.354184 | LINESTRING (-75.17125 39.94248, -75.17129 39.9... | 38.467115 | 8.549512 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
| 109727507 | 110024052 | 0 | 193364514 | residential | NaN | Carpenter Street | True | False | 53.208442 | LINESTRING (-75.17196 39.93974, -75.17134 39.9... | 38.467115 | 4.979588 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 109728761 | 110274344 | 0 | 672312336 | residential | NaN | Brown Street | True | False | 58.270358 | LINESTRING (-75.17317 39.96951, -75.1725 39.96... | 40.233500 | 5.213896 | 25 mph | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
# Groupby highway type and get the mean values
edges["highway"] = edges["highway"].astype(str)
edges.groupby("highway")[["length", "speed_kph", "travel_time"]].mean()| length | speed_kph | travel_time | |
|---|---|---|---|
| highway | |||
| ['motorway_link', 'secondary_link'] | 224.673048 | 40.233500 | 20.103222 |
| ['residential', 'unclassified'] | 258.436611 | 40.233500 | 23.124307 |
| ['tertiary', 'motorway_link'] | 151.598640 | 40.233500 | 13.564694 |
| living_street | 52.876864 | 45.884028 | 4.148649 |
| motorway | 446.906218 | 82.720076 | 19.204545 |
| motorway_link | 309.892510 | 40.233500 | 27.728461 |
| primary | 102.958582 | 44.388523 | 8.381328 |
| primary_link | 53.891964 | 40.233500 | 4.822128 |
| residential | 80.963002 | 38.465687 | 7.603245 |
| secondary | 95.551672 | 42.295051 | 8.265380 |
| tertiary | 77.123739 | 41.373732 | 6.728209 |
| tertiary_link | 39.973430 | 40.233500 | 3.576730 |
| trunk | 54.151559 | 50.962433 | 3.925862 |
| trunk_link | 179.573840 | 45.884028 | 14.089126 |
| unclassified | 123.510873 | 37.934443 | 11.866320 |
# calculate two routes by minimizing travel time
route2 = ox.shortest_path(G_cc, orig_node, dest_node, weight="travel_time")# plot the routes
fig, ax = ox.plot_graph_routes(
G_cc,
routes=[route1, route2],
route_colors=["r", "y"],
route_linewidth=6,
node_size=0,
)
Let’s plot both in an interactive map:
# m = ox.utils_graph.route_to_gdf(G_cc, route1, weight="length").explore(
# tiles="cartodb dark matter",
# color="red",
# )
# m = ox.utils_graph.route_to_gdf(G_cc, route2, weight="length").explore(
# tiles="cartodb dark matter",
# color="yellow",
# m=m
# )
from osmnx import routing # new location for route_to_gdf
# First route
gdf_route1 = routing.route_to_gdf(G_cc, route1, weight="length")
m = gdf_route1.explore(
tiles="cartodb dark_matter",
color="red"
)
# Second route on same map
gdf_route2 = routing.route_to_gdf(G_cc, route2, weight="length")
m = gdf_route2.explore(
tiles="cartodb dark_matter",
color="yellow",
m=m
)
mLet’s compare to the two routes:
Distances:
# meters_to_miles = 0.0006213712
# # compare the two routes
# route1_length = (
# ox.utils_graph.route_to_gdf(G_cc, route1, weight="length")["length"].sum()
# * meters_to_miles
# )
# route2_length = (
# ox.utils_graph.route_to_gdf(G_cc, route2, weight="length")["length"].sum()
# * meters_to_miles
# )
import osmnx as ox
from osmnx import routing # new module for route_to_gdf
meters_to_miles = 0.0006213712
# Compare the two routes
route1_length = (
routing.route_to_gdf(G_cc, route1, weight="length")["length"].sum()
* meters_to_miles
)
route2_length = (
routing.route_to_gdf(G_cc, route2, weight="length")["length"].sum()
* meters_to_miles
)
print(f"Route 1 length: {route1_length:.2f} miles")
print(f"Route 2 length: {route2_length:.2f} miles")Route 1 length: 2.19 miles
Route 2 length: 2.46 miles
Travel times:
seconds_to_mins = 1.0 / 60
# route1_time = (
# ox.utils_graph.route_to_gdf(G_cc, route1, weight="travel_time")["travel_time"].sum()
# * seconds_to_mins
# )
# route2_time = (
# ox.utils_graph.route_to_gdf(G_cc, route2, weight="travel_time")["travel_time"].sum()
# * seconds_to_mins
# )
route1_time = (
routing.route_to_gdf(G_cc, route1, weight="travel_time")["travel_time"].sum()
* seconds_to_mins
)
route2_time = (
routing.route_to_gdf(G_cc, route2, weight="travel_time")["travel_time"].sum()
* seconds_to_mins
)Summarize:
print(f"Route 1 is {route1_length:.2f} miles and takes {route1_time:.2f} minutes.")
print(f"Route 2 is {route2_length:.2f} miles and takes {route2_time:.2f} minutes.")Route 1 is 2.19 miles and takes 5.18 minutes.
Route 2 is 2.46 miles and takes 4.57 minutes.
“Pandas Network Analysis - dataframes of network queries, quickly”
A complementary set of OSM-related features: - Downloading OSM-based networks - Extracting amenity data (so-called “Points of Interest”) - Calculating network-constrained distances
# !pip install pandanaimport pandana as pnda
from pandana.loaders import osmKey function: osm.node_query()
ox.features_from_bbox() function in OSMnx, but we slightly different syntax.osm.node_query?Signature: osm.node_query(lat_min, lng_min, lat_max, lng_max, tags=None) Docstring: Search for OSM nodes within a bounding box that match given tags. Parameters ---------- lat_min, lng_min, lat_max, lng_max : float tags : str or list of str, optional Node tags that will be used to filter the search. See http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide for information about OSM Overpass queries and http://wiki.openstreetmap.org/wiki/Map_Features for a list of tags. Returns ------- nodes : pandas.DataFrame Will have 'lat' and 'lon' columns, plus other columns for the tags associated with the node (these will vary based on the query). Index will be the OSM node IDs. File: ~/mambaforge/envs/musa-550-fall-2023/lib/python3.10/site-packages/pandana/loaders/osm.py Type: function
Get the bounding box:
boundary = center_city_outline.bounds
boundary, type(boundary)((-75.1935824529863, 39.9286257450625, -75.1259307965394, 39.9738724134054),
tuple)
[lng_min, lat_min, lng_max, lat_max] = boundary# query OSM
poi_df = osm.node_query(lat_min, lng_min, lat_max, lng_max)
# remove missing data
poi_df = poi_df.dropna(subset=["amenity"])poi_df.head()| lat | lon | railway | light_rail | name | network | operator | public_transport | wheelchair | highway | traffic_signals | direction | old_ref | ref | noref | crossing | crossing:markings | crossing:signals | traffic_calming | crossing:island | tactile_paving | stop | noexit | traffic_signals:direction | kerb | crossing:barrier | amenity | barrier | disused:railway | button_operated | crossing:markings:colour | traffic_signals:sound | traffic_signals:vibration | crossing_ref | supervised | railway:signal:direction | ele | gnis:feature_id | place | wikidata | wikipedia | alt_name | name:en | name:zh | brand | brand:wikidata | operator:wikidata | operator:wikipedia | short_name | addr:city | addr:housenumber | addr:postcode | addr:state | addr:street | air_conditioning | branch | cuisine | official_name | opening_hours | phone | takeaway | website | shop | ferry | building | atm | contact:facebook | diet:vegetarian | payment:cash | payment:credit_cards | payment:debit_cards | check_date | check_date:opening_hours | brand:website | healthcare | brewery | contact:instagram | diet:vegan | description | historic:amenity | note | education | old_name | leisure | sport | man_made | tower:type | operator:short | operator:type | operator:website | emergency | healthcare:speciality | railway:position | train | artwork_type | historic | tourism | information | artist_name | material | office | bench | bus | covered | network:wikidata | shelter | memorial | addr:housename | was:man_made | comment | historic:tourism | disused:leisure | was:name | was:opening_hours | was:sport | addr:country | platforms | station | subway | junction | iata | railway:ref | railway:switch:local_operated | railway:signal:position | bicycle | segregated | addr:unit | internet_access | internet_access:fee | start_date | subject:wikidata | drive_through | tram | contact:website | reservation | website:menu | contact:linkedin | contact:tiktok | contact:twitter | studio | delivery | indoor_seating | colour | parking | collection_times | self_service | check_date:kerb | entrance | screen | outdoor_seating | payment:coins | smoking | architect | disused:amenity | contact:phone | network:wikipedia | wikimedia_commons | female | dispensing | landmark | name:de | capacity | contact:myspace | fax | bar | designation | disused:shop | service:bicycle:pump | service:bicycle:repair | service:bicycle:retail | toilets:wheelchair | route_ref | source:pkey | vacant | fast_food | fuel:propane | power | substation | was:website | access | level | fee | museum | bin | lit | mobile | fuel:biodiesel | fuel:biogas | fuel:cng | fuel:diesel | fuel:e10 | fuel:e85 | fuel:electricity | collection_times:signed | ref:signed | check_date:collection_times | clothes | addr:full | check_date:diet:vegan | image:menu | image:menu:0 | image:menu:1 | image:menu:2 | panoramax | panoramax:0 | beauty | fair_trade | organic | fixme | check_date:diet:vegetarian | opening_hours:signed | bicycle_rental | kiosk | min_age | owner | owner:wikidata | ownership | payment:app | rental | sponsor | sponsor:wikidata | opening_hours:bar | opening_hours:kitchen | phone:mnemonic | disused:brand | disused:brand:wikidata | disused:brand:wikipedia | disused:dispensing | disused:drive_through | disused:healthcare | disused:opening_hours | denomination | religion | diet:pescetarian | lgbtq | fare_zone | toilets | toilets:access | power_supply | building:levels | population | payment:apple_pay | payment:cards | payment:contactless | second_hand | disused:name | farm_boxes | addr:place | social_facility | source:cuisine | demolished:amenity | demolished:opening_hours | demolished:phone | demolished:social_facility | maxheight | artwork_subject | inscription | access:delivery | wheelchair:description | wheelchair:description:en | was:cuisine | internet_access:ssid | elevation | park_ride | layer | artist:wikidata | height | name:es | service:bicycle:chain_tool | natural | name:fr | statue | cycleway:crossing:markings:colour | name:signed | surface | departures_board | subject:wikipedia | was:tourism | check_date:shelter | denotation | check_date:tactile_paving | maxspeed | was:brand | was:brand:wikidata | check_date:wheelchair | ref:isil | currency:USD | drink:coca-cola | drink:coke | drink:cola | drink:cola_zero | drink:soda | drink:water | vending | foot | locked | motor_vehicle | motorcar | year_of_construction | name:ru | toilets:unisex | kitchen_hours | animal | craft | contact:email | disused:cuisine | website:orders | website:reservation | source:lgbtq | horse | bottle | fountain | lamp_type | theatre:genre | line_attachment | microbrewery | cycleway:left | cycleway:oneway | bicycle_parking | ref:retrofitness | leaf_cycle | leaf_type | capital | loc_name | name:ar | name:azb | name:be | name:bn | name:ca | name:cay | name:chr | name:cs | name:el | name:fa | name:grc | name:he | name:hi | name:it | name:ja | name:kn | name:ko | name:lv | name:moh | name:oc | name:ono | name:pa | name:pl | name:pt | name:sr | name:ta | name:te | name:tr | name:uk | name:ur | name:zh-Hans | name:zh-Hant | population:date | source:name:oc | source:population | changing_table | happy_hours | opening_hours:brunch | opening_hours:dinner | opening_hours:lunch | advertising | payment:american_express | payment:mastercard | payment:visa | backrest | fire_hydrant:position | fire_hydrant:type | club | playground | date | display | faces | bollard | seats | seamark:type | was:alt_name | was:takeaway | country | flag:name | flag:type | amenity_1 | female:signed | male:signed | payment:venmo | social_facility:for | end_date | species | payment:notes | camera:direction | camera:mount | camera:type | surveillance | surveillance:type | manhole | drink:beer | recycling_type | brand:type | location | type | library | disused:tourism | authority | marker_date | historic:name | baby | parcel_locker:type | parcel_mail_in | consulate | diplomatic | target | dog | recycling:beverage_cartons | recycling:cans | recycling:glass_bottles | recycling:paper | recycling:plastic | recycling:plastic_bottles | recycling:plastic_packaging | contact:yelp | postal_code | portable | seasonal | toilets:disposal | toilets:handwashing | toilets:position | unisex | particle_accelerator | substance | payment:cheque | payment:discover_card | heritage | flag:wikidata | subject | flag:colour | fixme:atp | communication:mobile_phone | post_office | post_office:brand | post_office:service_provider | post_office:website | demolished:noexit | school | dance:style | dance:teaching | waste | landuse | military_service | generator:method | generator:output:electricity | generator:source | generator:type | check_date:capacity | inscription:url | payment:cash_app | seating | street_vendor | gender | hiking | support | door | smoothness | contact:flickr | contact:mastodon | indoor | name:etymology:wikidata | rooms | opening_hours:Condesa | opening_hours:El_Cafe | opening_hours:El_Techo | was:amenity | was:official_name | cash_in | service:bicycle:tools | network:short | image | mimics | source:url | water_source | class:bicycle | drinking_water | fridge | male | ramp:wheelchair | attraction | food | generator:output:hot_water | not:network:wikidata | defibrillator:location | brand:wikipedia | bridge:support | opening_hours:url | cash_out | currency:XBT | payment:lightning | payment:lightning_contactless | payment:onchain | fishing | couplings | government | self_checkout | flickr | disused:payment:cash | disused:payment:contactless | disused:payment:credit_cards | disused:payment:debit_cards | disused:phone | disused:ref | delivery:partner | internet_access:password | surveillance:zone | post_box:type | fire_mains | fire_sprinkler | bonnet:colour | lamp_mount | openplaques:id | description:en | military | memorial:website | ref:hmdb | disused:official_name | disused:takeaway | compressed_air | service:bicycle:rental | service:bicycle:sales | service:bicycle:service | addr:door | community_centre:for | community_centre | cycleway | name:etymology | collector | tidal | waterway | design | structure | voltage:primary | cables | switch | location:transition | street_cabinet | noname | role | diet | railway:signal_box | railway_milepost | maxwidth:physical | source:maxwidth:physical | books | residential | internet_access:operator | contact:webcam | monitoring:dissolved_oxygen | monitoring:flow_rate | monitoring:tide_gauge | monitoring:water_conductivity | monitoring:water_level | monitoring:water_nitrate | monitoring:water_nitrite | monitoring:water_pH | monitoring:water_temperature | monitoring:water_turbidity | monitoring:water_velocity | shef:location_id | website:1 | ele:accuracy | ele:datum | monitoring:air_pressure | monitoring:precipitation | cafe | contact:bluesky | website:booking | nursery | preschool | monitoring:air_gap | monitoring:air_temperature | website:2 | armrest | count | diet:halal | hairdresser | sign | removed:amenity | product | animal_training | gender_segregated | gate:type | animal_boarding | swimming_pool | public_bookcase:type | authentication:app | brand:en | frequency | hgv | maxstay | network:website | payment:app:tesla | ref:supercharge_info | scooter | socket:nacs | socket:nacs:output | diet:mediterranean | restaurant | panoramax:1 | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| id | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 110237774 | 39.950401 | -75.156620 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | parking_entrance | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 274216093 | 39.957640 | -75.191254 | NaN | NaN | Citibank | NaN | Citibank | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | atm | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Citibank | Q857063 | Q857063 | en:Citibank | Citi | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 274217596 | 39.953015 | -75.192289 | NaN | NaN | Starbucks | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 14716 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | cafe | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Starbucks | Q37158 | NaN | NaN | NaN | Philadelphia | 3401 | 19104 | PA | Walnut Street | yes | Walnut & 34th | coffee_shop | Starbucks Coffee | Mo-Fr 05:30-20:00; Sa,Su 06:00-20:00 | +1-215-387-1914 | yes | https://www.starbucks.com/store-locator/store/... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 313440966 | 39.963935 | -75.166939 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | car_sharing | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 313440968 | 39.963978 | -75.170407 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | car_sharing | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
len(poi_df)2918
poi_df[["lat", "lon", "amenity"]].head(10)| lat | lon | amenity | |
|---|---|---|---|
| id | |||
| 110237774 | 39.950401 | -75.156620 | parking_entrance |
| 274216093 | 39.957640 | -75.191254 | atm |
| 274217596 | 39.953015 | -75.192289 | cafe |
| 313440966 | 39.963935 | -75.166939 | car_sharing |
| 313440968 | 39.963978 | -75.170407 | car_sharing |
| 326519551 | 39.944261 | -75.132616 | ferry_terminal |
| 333786044 | 39.940858 | -75.158928 | restaurant |
| 333786095 | 39.941924 | -75.157357 | cafe |
| 333786448 | 39.942642 | -75.157958 | bank |
| 333786774 | 39.943102 | -75.160030 | pharmacy |
For the full list of amenities, see the OSM Wikipedia
import altair as alt # Import Altair first
chart = (
alt.Chart(poi_df)
.mark_bar()
.encode(y=alt.Y("amenity", sort="-x"), x="count()", tooltip=["amenity", "count()"])
)
chart